package com.atguigu.lease.common.handler;

import com.atguigu.lease.common.result.Result;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
//@RestControllerAdvice标注的类是异常处理器，处理异常返回的结果转为JSON字符串
//  可以处理handler方法抛出的异常！
//  @ControllerAdvice 标注的也是异常处理器 处理异常返回的结果为 视图对象 要进行转发！  一般不用！
@RestControllerAdvice
@Slf4j
public class GlobalExceptionHandler {
    //最大的异常的处理器
    // 该注解标注的方法 可以处理 controller接口抛出的 value值声明的异常，由异常处理器代替接口返回结果！
    @ExceptionHandler(value = Exception.class)
    public Result exception(Exception e){
        //打印异常的堆栈日志
        log.error(ExceptionUtils.getStackTrace(e));
        return Result.build(null , 201 , e.getMessage() , false);
    }



}
